libotutil: Allow no variant in ot_util_variant_builder_from_variant()
authorMatthew Barnes <mbarnes@redhat.com>
Mon, 2 Mar 2015 19:55:01 +0000 (14:55 -0500)
committerMatthew Barnes <mbarnes@redhat.com>
Mon, 2 Mar 2015 20:12:06 +0000 (15:12 -0500)
For programming convenience in cases where we may or may not have a
GVariant to initialize the builder with.

src/libostree/ostree-repo-commit.c
src/libotutil/ot-variant-utils.c

index 9d8bf8bd102a6019b09130004a58787aae031eb9..941b08f00c69cd7b9af92ec6e5b03fcd4a2161ec 100644 (file)
@@ -369,14 +369,8 @@ add_size_index_to_metadata (OstreeRepo        *self,
   gboolean ret = FALSE;
   gs_unref_variant_builder GVariantBuilder *builder = NULL;
     
-  if (original_metadata)
-    {
-      builder = ot_util_variant_builder_from_variant (original_metadata, G_VARIANT_TYPE ("a{sv}"));
-    }
-  else
-    {
-      builder = g_variant_builder_new (G_VARIANT_TYPE ("a{sv}"));
-    }
+  /* original_metadata may be NULL */
+  builder = ot_util_variant_builder_from_variant (original_metadata, G_VARIANT_TYPE ("a{sv}"));
 
   if (self->object_sizes &&
       g_hash_table_size (self->object_sizes) > 0)
@@ -2189,11 +2183,9 @@ get_modified_xattrs (OstreeRepo                       *self,
         {
           GVariantBuilder *builder;
 
-          if (ret_xattrs)
-            builder = ot_util_variant_builder_from_variant (ret_xattrs,
-                                                            G_VARIANT_TYPE ("a(ayay)"));
-          else
-            builder = g_variant_builder_new (G_VARIANT_TYPE ("a(ayay)"));
+          /* ret_xattrs may be NULL */
+          builder = ot_util_variant_builder_from_variant (ret_xattrs,
+                                                          G_VARIANT_TYPE ("a(ayay)"));
 
           g_variant_builder_add_value (builder,
                                        g_variant_new ("(@ay@ay)",
index 5a8ca99494f0a2a731dd18eb062a4137ac664a99..28fd49b2d518a2e3d41b9a42b03f376bda03a10c 100644 (file)
@@ -260,16 +260,20 @@ ot_util_variant_builder_from_variant (GVariant            *variant,
                                       const GVariantType  *type)
 {
   GVariantBuilder *builder = NULL;
-  gint i, n;
   
   builder = g_variant_builder_new (type);
   
-  n = g_variant_n_children (variant);
-  for (i = 0; i < n; i++)
+  if (variant != NULL)
     {
-      GVariant *child = g_variant_get_child_value (variant, i);
-      g_variant_builder_add_value (builder, child);
-      g_variant_unref (child);
+      gint i, n;
+
+      n = g_variant_n_children (variant);
+      for (i = 0; i < n; i++)
+        {
+          GVariant *child = g_variant_get_child_value (variant, i);
+          g_variant_builder_add_value (builder, child);
+          g_variant_unref (child);
+        }
     }
     
   return builder;